home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
019
/
ltsapp.arc
/
COMDOC.TXT
next >
Wrap
Text File
|
1986-10-26
|
16KB
|
311 lines
COMMA.APP -- File Import COMMA-Delimited
COMMA.APP is a Symphony (TM) Add-In application that augments Symphony's
standard File Import capabilities. It adds the option "Comma" to the
normal choices of "Text" and "Structured" on the File Import menu.
COMMA imports structured ASCII files onto a Symphony worksheet. It has
the same general functions as File-Import-Structured. However, COMMA is
often more directly applicable to importing data records than F-I-S,
because of the following features:
1. Input files can have lines longer than 240 characters.
2. Commas which separate input fields are significant. In
F-I-Structured, two or three commas between fields is
treated exactly the same as a single comma, but COMMA
obeys multiple commas as an indication to skip cells on
the worksheet. This makes COMMA suitable for importing
data from many BASIC or disk filing programs.
3. Unlike F-I-Structured, text does not have to be quoted
for COMMA to import it as label cells onto the worksheet.
4. Input text can contain imbedded double-quote marks.
5. Label cells can be right-aligned or centered if desired.
6. Formulas can be entered, just as if they were typed in
SHEET mode. In fact, COMMA can import any legal cell
contents; repeating labels, DOC format lines, etc.
7. Cells can be formatted as they are being input.
8. Column widths can be set appropriately for the input data.
9. Cells can be entered in an order other than strict
left-to-right and top-to-bottom.
To make the facilities of the COMMA Add-In available to Symphony, use
the Application Attach command to attach COMMA.APP at the beginning of
the session. When COMMA is no longer needed, Application Detach can be
used to remove it from Symphony's memory area. However, it may be
convenient to keep COMMA attached while its functions are still needed.
After COMMA.APP is attached to Symphony, it can be activated from the
File Import menu by selecting [SERVICES] File Import Wide. You will be
instructed to identify a file to be read, and then directed to indicate
a target range for the import operation. The default file extension for
the input file is presumed to be PRN, but the standard Symphony filename
specification procedures can be used to identify a file in any directory
and with any desired extension.
The target import range can be specified by pointing with an anchored or
unanchored cursor, by typing a cell address or pair of cell coordinates,
or by providing a range name. If the target is specified as an anchored
range, i.e. with upper-left and lower-right coordinates, then the import
operation will be constrained to that range; no cells outside that range
will be affected. If an unanchored range is specified, i.e. by giving
the upper-left cell address only, then cells to the right and below the
target address may be replaced by data from the input file. If global
protection is enabled, however, then any attempt to overwrite protected
cells will immediately terminate the import operation.
COMMA will read files with any desired record length. The data from
each record (line) is placed in a separate row on the Symphony
worksheet. Each record is terminated by an ASCII Carriage Return (CR =
0Dh) and an optional Line Feed (LF = 0Ah) character. End of file can be
indicated either by an ASCII End-Of-File (EOF = 1Ah) character or by DOS
knowing exactly how many bytes long the file is.
Each line of the input file can contain many fields. These fields have
either cell data (text, numbers, or formulas) or else contain special
instructions to COMMA which control the import process. Each data field
in a record is placed in a separate column on the Symphony worksheet,
unless a control command in the input stream directs COMMA to move the
logical cursor to another column or row. Fields in the input file are
separated by commas. Any number of blank spaces before or after field
values are ignored.
Data fields can be constructed as follows:
1. Text is optionally enclosed in matching double-quote (")
characters. A text string must be quoted if it needs to
contain an imbedded comma or leading or trailing blanks.
A text field can be up to 240 characters long between the
quotes or commas which delimit it. Each text field is
placed into a Symphony cell as a left-aligned label. If
a double-quote mark is needed as an imbedded character in
a quoted text string, it should be indicated by a pair of
double-quotes (""); unquoted text (which is delimited
only by commas) can contain a double-quote character
without any special preparation. Any tab characters
(ASCII 09h) in the text will be expanded to blank spaces
with tab settings assumed at every eight (8) positions.
2. Numbers are entered without any delimiter characters. A
numeric field consists of a string of digits, with an
optional leading dollar sign, an optional plus or minus
sign, an optional imbedded decimal point, and optionally
trailed by either a percent sign or an exponent. The
standard Symphony rules for typing numbers into SHEET
cells are applied.
3. Formulas are enclosed in matching square bracket ( [ ] )
characters. A formula field can be up to 240 characters
long between the brackets, and two right-brackets ( ]] )
can signify a required one in the formula string.
Each formula field is placed into a cell exactly as if it
were typed into a Symphony SHEET cell. Imported formulas
can refer to range names and cell addresses as usual.
All references to cells by cell coordinates (A1, B2, ...)
are treated as references relative to the upper-left
corner of the target import range. If the contents of a
bracketed string are not acceptable to Symphony as a
formula (or a label cell or number cell) then the formula
string is imported as a label cell prefaced by the string
ERR> and left on the worksheet for subsequent editing.
Note that brackets can be used to import label cells with
leading left- (') right- (") or center-alignment (^)
prefix characters. This allows more specific control
over cell alignment than importing quoted text strings,
which are always loaded as left-aligned labels. Also,
formula brackets can be used to import repeating labels
(with the \ prefix character) and special (prefixed by
the | character) label cells.
4. If any input field is longer than 240 characters, then it
is truncated at the 240-th character position without any
warning message. If the final delimiter for the text (")
or formula (]) field is not found before the end of the
input line, then the entire field is ignored and the
corresponding cell on the worksheet is not filled.
In addition to the data values that COMMA can import, there are special
command fields that can be used to control the import process. These
fields are enclosed in curly brace ( { } ) characters. They provide the
ability to specify the cell format of imported fields, to set the column
width of columns in the import range, and to import the fields in orders
other than strict row-per-line and column-per-field sequence.
If an unknown command type is found between curly braces, or the input
line ends (CR) before the right-brace (}) character is found to complete
the command, then the command string is ignored in the input stream. In
particular, note that an unquoted string which begins with a left-brace
-- but is not intended to be used as a command -- may have its opening
character(s) stripped by COMMA, which would mistake the unquoted string
for a special control command.
The following control strings are accepted, and must be enclosed in
curly braces:
COMMAND STRING PURPOSE
------- -------- ----------------------------------------
Home H Resets the import cursor to point to the
upper-left corner of the import range.
Right R Moves the import cursor one (or more)
R ddd cells to the right, skipping over any
data already on the sheet.
Left L Moves the import cursor one (or more)
L ddd cells to the left, skipping over any
data already on the sheet.
Down D Moves the import cursor one (or more)
D dddd rows down, skipping over any data
already on the sheet.
Up U Moves the import cursor one (or more)
U dddd rows up, skipping over any data already
on the sheet.
Width W ddd Sets the column width on the SHEET of
the column targeted for the next field.
Format F fdd A Sets the cell display format for cells
imported after this command field.
In the above list the notation dd, ddd, or dddd stands for a string of
up to 2, 3, or 4 decimal digits used in the command. Any blank spaces
between the command identifying letter and the parameters of the command
are optional. Command letters may be in either upper or lower case (H
or h, R or r, ...) but must immediately follow the left curly brace ({)
character which begins the command field.
The following are examples of valid command fields:
{H} Moves the import cursor to the beginning of the
range for the File Import COMMA operation.
{R} Skips the cursor one cell to the right.
{L 12} Moves 12 cloumns to the left.
{D123 } Moves 123 rows down, skipping lines.
{U 8193} Moves the cursor to the top line of the import
range (see note below about large numbers).
{W 15} Sets the column width to 15 characters.
As indicated in the above example of the Up command, COMMA limits
actions of the special commands to reasonable numbers. A Left operation
can not back up to a column before the selected import range, and an Up
can not move above the top import line. A value greater than 8192 for
the Down command is treated as a move to row 8192, and a value above 256
for the Right command is treated as a move to column 256, but such
locations are subject to being cut off because they are likely outside
of the import range initially specified. Similarly, a column Width more
than 240 will be ignored by Symphony.
Aside from direct cursor movements ordered by the commands, they do not
affect the current import cursor position. A command does not have to
be followed by a comma, so the cell pointer will not necessarily be
updated by the existence of a command in the input stream. This is
especially useful so that the Width command and the Format command can
be included with the data that they modify, in which case no comma
should be placed between the command's closing right-brace character and
the beginning of the data field value.
The Format command field affects all data cells imported until the next
Format command. The initial cell display format is Reset (with Prevent-
Changes for protected cells). The Format command uses specifiers like
those shown in the Symphony control panel for SHEET cells: e.g. C2 is
Currency with 2 decimal places, T1 is a Time format, F0A indicates Fixed
with zero decimals and Allow-Changes when global protection is on, etc.
The following Format types are recognized:
CODE EXAMPLE Symphony FORMAT
------- -------- ----------------------------------------
F0..15 1234.56 Fixed, with 0-15 decimal places
S0..15 1.23E+03 Scientific, with 0-15 decimal places
C0..15 $123.45 Currency, with 0-15 decimal places
P0..15 1,234.56 Punctuated, with 0-15 decimal places
%0..15 12.34% Percent (%), with 0-15 decimal places
G 1234.56 General, like Fixed or Scientific
D1..5 05-Sep Date, in 5 Symphony formats
T1..4 10:36 AM Time, in 4 Symphony formats
B ++++ Bar-Graph (+), horizontal graph
L +A1-B2 Literal, formula text displayed
H Hidden, no cell value displayed
R 1234.563 Reset, cell display in default format
The Format command begins with a left-brace and an F (or f), and then it
contains one of the format type specifiers and an optional protection
override flag. Spaces can be used to separate the format type -- one or
two characters -- from the F command letter for clarity, but a
two-character type specifier (e.g. C2) can not have imbedded spaces.
In order to set the Allow-Changes flag for a cell, the Format command is
specified with an "A" at the end of the format code (optionally preceded
by spaces for clarity). If the "A" is not given, the default protection
status (Prevent-Changes) is incorporated into the cell format.
The following are examples of Format commands:
{F F2} Fixed, with 2 decimal places.
{FS07 } Scientific, 7 decimal places
{F C0 A} Currency, no decimals, Allow-Changes
{FP12} Punctuated, with 12 decimal places
{F %0} Percent, no decimal places
{FG} General format
{F D1 } Date format 1 (DD-MMM-YY)
{FT2} Time format 2 (HH:MM:SS AM/PM)
{F BA } Bar-Graph, Allow-Changes
{F L } Literal, formula text instead of value
{FH} Hidden, no cell value displayed
{F R} Reset, back to default cell format
{FRA} Reset, but with Allow_changes flag
All of the format codes may be specified in either upper case or lower
case alphabetic characters. If an unknown format code is specified, the
Format command is ignored. If no Format command is given, or if the
Reset code is specified, then subsequent imported cells adopt the
default format of the Symphony SHEET window currently active. The
Format command does not affect the default format status of Symphony.
The following example illustrates several of the features of File Import
COMMA. If the ASCII file shown is imported to a range beginning at E21,
the Symphony SHEET window will appear as indicated.
INPUT
(In this representation of the ASCII import file, CRLF indicates the end
of an input line, i.e. Carriage-Return Line-Feed, and EOF indicates the
End-Of-File mark.)
{W18}Region, {W12} ["Income], ["Expense]{w 12} , {W12 }["Profit]CRLF
[\-],,,[\-],{F p2} CRLF
West Coast, 12345.67, 11e3, [+b3-c3]CRLF
"""Newest"" States" ,,50000,[+b4-c4] CRLF
"East Coast" {r} 98765, 12345%, [+B5-C5] CRLF
CRLF
[^TOTAL]{r 3}{f C2}[@sum(D3..d5)] EOF
OUTPUT
|-------------E--------------F-----------G-----------H---------I----|
21 Region Income Expense Profit |
22 ------------------ ------------ |
23 West Coast 12,345.67 11,000.00 1,345.67 |
24 "Newest" States 50,000.00 (50,000.00) |
25 East Coast 98,765.00 123.45 98,641.55 |
26 |
27 TOTAL $49,987.22 |
28 |
|===================================================================|